package com.cheng.example.geektime.designpatterns.j50.list;

import java.util.ArrayList;


/**
 * 复用例子
 *
 * 子类复用父类中模板方法定义的流程代码
 *
 * 这个方法不支持，需要子类去实现
 */


public class Test {


    //AbstractList例子
//    public boolean addAll(int index, Collection<? extends E> c) {
//        rangeCheckForAdd(index);
//        boolean modified = false;
//        for (E e : c) {
//            add(index++, e);          //调用
//            modified = true;
//        }
//        return modified;
//    }
//
//    public void add(int index, E element) {
//        throw new UnsupportedOperationException();
//    }

      public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        ArrayList<Integer> list2 = new ArrayList<>();

        for (int i = 0; i < 10; i++) {
            list1.add(Integer.valueOf(i));
            list2.add(Integer.valueOf(i));
        }
        list1.addAll(1,list2);

        System.out.println(list1);
    }
}
